// import com.alibaba.druid.sql.ast.SQLName;
// import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;
#pragma once
#include "../OracleSQLObjectImpl.h"

class OracleXmlColumnProperties_OracleXMLTypeStorage : virtual public OracleSQLObjectImpl
{
public:
  BOOL_ptr secureFile;
  BOOL_ptr basicFile;

  BOOL_ptr clob;
  BOOL_ptr binaryXml;

  OracleLobParameters_ptr lobParameters;

  SHAREDOBJECT(OracleXmlColumnProperties_OracleXMLTypeStorage);
  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  BOOL_ptr isSecureFile();

  void setSecureFile(BOOL_ptr secureFile);

  BOOL_ptr isBasicFile();

  void setBasicFile(BOOL_ptr basicFile);

  BOOL_ptr isClob();

  void setClob(BOOL_ptr clob);

  BOOL_ptr isBinaryXml();

  void setBinaryXml(BOOL_ptr binaryXml);

  OracleLobParameters_ptr getLobParameters();

  void setLobParameters(OracleLobParameters_ptr x);
};

class OracleXmlColumnProperties : virtual public OracleSQLObjectImpl
{
public:
  SQLName_ptr column;
  OracleXmlColumnProperties_OracleXMLTypeStorage_ptr storage;

  BOOL_ptr allowNonSchema;
  BOOL_ptr allowAnySchema;

  SHAREDOBJECT(OracleXmlColumnProperties);
  // @Override
  void accept0(OracleASTVisitor_ptr visitor);

  SQLName_ptr getColumn();

  void setColumn(SQLName_ptr x);

  OracleXmlColumnProperties_OracleXMLTypeStorage_ptr getStorage();

  void setStorage(OracleXmlColumnProperties_OracleXMLTypeStorage_ptr x);

  BOOL_ptr getAllowNonSchema();

  void setAllowNonSchema(BOOL_ptr allowNonSchema);

  BOOL_ptr getAllowAnySchema();

  void setAllowAnySchema(BOOL_ptr allowAnySchema);
};
